<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="text">
    <script>
    let input=document.querySelector('input')
//  其中也有闭包 因为用到了里面的参数
   function debounce(x,delayTime){//防抖的意思就是操作时不执行，不操作了就执行
        let timer=null;
        return function(){
            if(timer) clearTimeout(timer)
         timer= setTimeout(()=>{//让定时器为timer不要给忘掉了
                x.call(this,...arguments);//因为是input调用她所以知道谁是this
                timer=null//执行之后清除timer   
            },delayTime)
        }
   }

   const eventCallBack = function(){
       console.log( this.value+'请求后台');
    }
// 相当于debounce只执行一次
    const callbackByDebounce = debounce(eventCallBack, 1000);//相当于用的timer都是同一个
    input.addEventListener('keyup',callbackByDebounce)


    </script>
</body>

</html>